package com.blog.dao;

import com.blog.domain.User;

import java.util.Calendar;
import java.util.Set;

import org.skyway.spring.util.dao.JpaDao;

import org.springframework.dao.DataAccessException;

/**
 * DAO to manage User entities.
 * 
 */
public interface UserDAO extends JpaDao<User> {

	/**
	 * JPQL Query - findUserByUsernameContaining
	 *
	 */
	public Set<User> findUserByUsernameContaining(String username) throws DataAccessException;

	/**
	 * JPQL Query - findUserByUsernameContaining
	 *
	 */
	public Set<User> findUserByUsernameContaining(String username, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserByImage
	 *
	 */
	public Set<User> findUserByImage(String image) throws DataAccessException;

	/**
	 * JPQL Query - findUserByImage
	 *
	 */
	public Set<User> findUserByImage(String image, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserByPrimaryKey
	 *
	 */
	public User findUserByPrimaryKey(Integer id) throws DataAccessException;

	/**
	 * JPQL Query - findUserByPrimaryKey
	 *
	 */
	public User findUserByPrimaryKey(Integer id, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserBySexContaining
	 *
	 */
	public Set<User> findUserBySexContaining(String sex) throws DataAccessException;

	/**
	 * JPQL Query - findUserBySexContaining
	 *
	 */
	public Set<User> findUserBySexContaining(String sex, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findAllUsers
	 *
	 */
	public Set<User> findAllUsers() throws DataAccessException;

	/**
	 * JPQL Query - findAllUsers
	 *
	 */
	public Set<User> findAllUsers(int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserByRegister
	 *
	 */
	public Set<User> findUserByRegister(java.util.Calendar register) throws DataAccessException;

	/**
	 * JPQL Query - findUserByRegister
	 *
	 */
	public Set<User> findUserByRegister(Calendar register, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserBySex
	 *
	 */
	public Set<User> findUserBySex(String sex_1) throws DataAccessException;

	/**
	 * JPQL Query - findUserBySex
	 *
	 */
	public Set<User> findUserBySex(String sex_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserByPassword
	 *
	 */
	public Set<User> findUserByPassword(String password) throws DataAccessException;

	/**
	 * JPQL Query - findUserByPassword
	 *
	 */
	public Set<User> findUserByPassword(String password, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserByNickNameContaining
	 *
	 */
	public Set<User> findUserByNickNameContaining(String nickName) throws DataAccessException;

	/**
	 * JPQL Query - findUserByNickNameContaining
	 *
	 */
	public Set<User> findUserByNickNameContaining(String nickName, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserByNickName
	 *
	 */
	public Set<User> findUserByNickName(String nickName_1) throws DataAccessException;

	/**
	 * JPQL Query - findUserByNickName
	 *
	 */
	public Set<User> findUserByNickName(String nickName_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserByImageContaining
	 *
	 */
	public Set<User> findUserByImageContaining(String image_1) throws DataAccessException;

	/**
	 * JPQL Query - findUserByImageContaining
	 *
	 */
	public Set<User> findUserByImageContaining(String image_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserById
	 *
	 */
	public User findUserById(Integer id_1) throws DataAccessException;

	/**
	 * JPQL Query - findUserById
	 *
	 */
	public User findUserById(Integer id_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserByUsername
	 *
	 */
	public Set<User> findUserByUsername(String username_1) throws DataAccessException;

	/**
	 * JPQL Query - findUserByUsername
	 *
	 */
	public Set<User> findUserByUsername(String username_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findUserByPasswordContaining
	 *
	 */
	public Set<User> findUserByPasswordContaining(String password_1) throws DataAccessException;

	/**
	 * JPQL Query - findUserByPasswordContaining
	 *
	 */
	public Set<User> findUserByPasswordContaining(String password_1, int startResult, int maxRows) throws DataAccessException;

}